#ifndef T_AUTOMA_JSON_WRAPPER_PGMFC_HPP
#define T_AUTOMA_JSON_WRAPPER_PGMFC_HPP

#include<string>
#include<vector>
#include "Libs/SimpleJSON/JSON.hpp"

struct JsonWrapperPGMFC {
	static int loadLibrary(int flag);
	// connects one at a time
	static void* connect();
	static void disconnect(void* nativeHandle);
	static int getSerialNo(void* nativeHandle, std::string& snOut, JSONObject* outputError);
	static int getChannelCount(void* nativeHandle, int& channelCountOut, JSONObject* outputError);
	static int getModuleID(void* nativeHandle, int& moduleIDOut, JSONObject* outputError);
	static int getFirmwareVersion(void* nativeHandle, std::string& fmVerOut, JSONObject* outputError);
	static int callFunction(void* nativeHandle, const wchar_t* functionName, 
		JSONObject* inputParas,
		JSONObject* outputData, JSONObject* outputError,
		std::wstring logFilename);
	static int tempLoad();
};

#endif